/*
 * @Author: your name
 * @Date: 2020-12-28 15:26:24
 * @LastEditTime: 2021-09-04 11:50:32
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \qdBillingSystem\vue.config.js
 */
'use strict'
var webpack = require('webpack')
const path = require('path')

function resolve (dir) {
  return path.join(__dirname, dir)
}
const ComperssionWebpackPlugin = require('compression-webpack-plugin')
module.exports = {
  productionSourceMap: true,
  css: {
    sourceMap: false
  },
  chainWebpack: config => {
    config.module.rules.delete('eslint')// 取消eslint检查
  },
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'scss',
      patterns: [
        // 这个是加上自己的路径,不能使用(如下:alias)中配置的别名路径
        path.resolve(__dirname, './src/style/params.less')
      ]
    }
  },
  // 基本路径
  publicPath: process.env.NODE_ENV === 'production'
    ? '/'
    : '/',
  // 输出文件目录
  outputDir: 'dist', // 默认dist
  // 用于嵌套生成的静态资产（js,css,img,fonts）目录
  // assetsDir: '',
  // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径
  indexPath: 'index.html', // Default: 'index.html'
  filenameHashing: true,
  devServer: {
    port: 3000,
    https: false,
    open: true,

    proxy: {
      '/sys': { // 此处要与 /api/index.js 中的 API_PROXY_PREFIX 值保持一致
        target: process.env.VUE_APP_API_BASE_URL,
        changeOrigin: true,
        pathRewrite: {
          '^/sys': ''
        }
      }
      /*
      '/': {
        target: 'http://localhost:3000/login',
        ws: false,
        changeOrigin: true,
      },
      */
    },
    disableHostCheck: true
    //
    // lintOnSave:false,
    // 	overlay:{
    // 				warning:false,
    // 				errors:false
    //  },
  },
  configureWebpack: {
    devtool: 'source-map',
    performance: {
      hints: false
      // //入口起点的最大体积 整数类型（以字节为单位）
      // maxEntrypointSize: 50000000,
      // //生成文件的最大体积 整数类型（以字节为单位 300k）
      // maxAssetSize: 30000000,
      // //只给出 js 文件的性能提示
      // assetFilter: function (assetFilename) {
      //     return assetFilename.endsWith('.js');
      // }
    },
    plugins: [
      new ComperssionWebpackPlugin({
        filename: '[path].gz[query]',
        algorithm: 'gzip',
        test: /\.js$|\.html$|\.css/,
        threshold: 10240,
        minRatio: 0.8,
        deleteOriginalAssets: false
      }),
      new webpack.ProvidePlugin({
        'window.Quill': 'quill/dist/quill.js', // 注意路径，可能与你们路径不一致
        'Quill': 'quill/dist/quill.js' // 注意路径，可能与你们路径不一致
      })
    ],
    resolve: {
      alias: {
        // eslint-disable-next-line no-undef
        '@': resolve('src')
      }
    }
  }
}
